<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      //语法：expr1, expr2, expr3..

      //参数：expr1, expr2, expr3..任何表达式

      //作用：将多个表达式连接起来
      //java：int a=1,b=2,c=3
      var a = ((b = 1), (c = 2), (d = 3))
      console.log(a)
      //a会输出3，原因：先计算b的值，一直到最后n，最后输出n值
      function add(m, n) {
        return m++, n++, m + n //这种计算，会先计算m++，和n++，最后输出m+n
      }
      console.log(add(4, 5))

      a = [b][((b = a), 0)]
      console.log(a, b)

      //对它的每个操作数求值（从左到右），并返回最后一个操作数的值
      let x = 1
      x = (x++, x)
      console.log(x)

      x = (2, 3) //输出最后一个值
      console.log(x)

      //示例：假设 a 是一个二维数组，每一维度包含10个元素，则下面的代码使用逗号操作符一次递增/递减两个变量。
      //此代码有误
      // for (var i = 0, j = 9; i <= 9; i++, j--) {
      //   document.writeln('a[' + i + '][' + j + '] = ' + a[i][j])
      // }

      function myFunc() {
        var x = 0

        return (x += 1), x // the same of return ++x;
      }
    </script>
  </body>
</html>
